package cn.rwklyd.BookKeeping.service;

import cn.rwklyd.BookKeeping.pojo.Category;
import cn.rwklyd.BookKeeping.pojo.Transaction;
import cn.rwklyd.BookKeeping.pojo.vo.ChartDataVO;
import cn.rwklyd.BookKeeping.pojo.vo.RankingItemVO;
import cn.rwklyd.BookKeeping.util.UserUtils;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.WeekFields;
import java.util.*;
import java.util.stream.Collectors;

/**
 * 统计服务，用于处理用户的交易数据统计
 */
public interface StatisticsService {

    /**
     * 获取图表数据
     * @param type 类型：expense-支出，income-收入
     * @param timeRange 时间范围：week-周，month-月，year-年
     * @return 图表数据
     */
    ChartDataVO getChartData(String type, String timeRange);

    /**
     * 获取排行榜数据
     * @param type 类型：expense-支出，income-收入
     * @param timeRange 时间范围：week-周，month-月，year-年
     * @return 排行榜数据
     */
    List<RankingItemVO> getRankingList(String type, String timeRange);
} 